﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Projeto.Classes.Conexao;
using Projeto.Classes.Objeto;
using Projeto.Utilidades;

namespace Projeto.Formularios
{
    public partial class frmBuscaProduto : Form
    {
        public frmBuscaProduto()
        {
            InitializeComponent();
        }

        private void btnPesquisa_Click(object sender, EventArgs e)
        {
            searchProduto();
        }

        private void dgvProduto_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            frmRegistroProduto frmProd = new frmRegistroProduto();
            frmProd.loadUpdate(
                Convert.ToInt32(dgvProduto.CurrentRow.Cells[constants.COLUMN_PROD_ID].Value),
                dgvProduto.CurrentRow.Cells[constants.COLUMN_PROD_DESCR].Value.ToString());
            frmProd.Show();
            this.Close();
        }

        public void searchProduto()
        {
             Classes.Conexao.Produto con = new Classes.Conexao.Produto();
            if (con.SelectProduto())
            {
                dgvProduto.DataSource = con.dataTable;
                dgvProduto.Columns[constants.COLUMN_PROD_ID].Visible = false;
                dgvProduto.Columns[constants.COLUMN_PROD_DESCR].HeaderText = constants.DATA_GRID_COLUMN_DESCR;
                dgvProduto.Columns[constants.COLUMN_PROD_DESCR].Width = 300;
            }
            else 
            {
                MessageBox.Show("Erro! Contacte o administrador.");
            }
        }

        private void dgvProduto_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            btnDelete.Enabled = true;
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Deseja realmente deletar '" +
                 dgvProduto.CurrentRow.Cells[constants.COLUMN_PROD_DESCR].Value.ToString() + "' ?",
                "Deletar Produto?", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) 
                == DialogResult.Yes) 
            {
                Classes.Conexao.Produto con = new Classes.Conexao.Produto();
                if (con.DeleteProduto(new Classes.Objeto.Produto(
                    Convert.ToInt32(dgvProduto.CurrentRow.Cells[constants.COLUMN_PROD_ID].Value))))
                {
                    MessageBox.Show("Registro deletado com sucesso.");
                    searchProduto();
                }
                else 
                {
                    MessageBox.Show("Erro. Contacte o suporte.");
                }
            }
        }
 
    }
}
